home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SPACE 1
/
SPACE - Library 1 - Volume 1.iso
/
program
/
355
/
source
/
ifsdemo
/
bitstuff.mod
< prev
next >
Wrap
Text File
|
1990-02-02
|
1KB
|
72 lines
IMPLEMENTATION MODULE BitStuff;
VAR a,b,c : INTEGER;
PROCEDURE BitAnd(a,b : INTEGER) : INTEGER;
VAR as,bs,cs : BITSET;
c : INTEGER;
BEGIN
as := VAL(BITSET,a);
bs := VAL(BITSET,b);
cs := as * bs;
c := VAL(INTEGER,cs);
RETURN c;
END BitAnd;
PROCEDURE BitOr(a,b : INTEGER) : INTEGER;
VAR as,bs,cs : BITSET;
c : INTEGER;
BEGIN
as := VAL(BITSET,a);
bs := VAL(BITSET,b);
cs := as + bs;
c := VAL(INTEGER,cs);
RETURN c;
END BitOr;
PROCEDURE BitXor(a,b : INTEGER) : INTEGER;
VAR as,bs,cs : BITSET;
c : INTEGER;
BEGIN
as := VAL(BITSET,a);
bs := VAL(BITSET,b);
cs := as / bs;
c := VAL(INTEGER,cs);
RETURN c;
END BitXor;
PROCEDURE SetBit(bit : INTEGER;
VAR field : INTEGER);
BEGIN
field := BitOr(bit,field);
END SetBit;
PROCEDURE ClearBit(bit : INTEGER;
VAR field : INTEGER);
BEGIN
field := BitXor(bit,field);
END ClearBit;
PROCEDURE TestBit(bit,field : INTEGER) : BOOLEAN;
VAR result : INTEGER;
BEGIN
result := BitAnd(bit,field);
IF result = 0 THEN
RETURN FALSE;
ELSE
RETURN TRUE;
END;
END TestBit;
END BitStuff.